//加载模块
const http = require('http')
const fs = require('fs')
const path = require('path')
const mime = require('mime')
const url = require('url')
const querystring=require('querystring')

//创建服务
http.createServer(function (req, res) {

    //设计路由 根据用户请求的的路径显示不同的页面
    //当用户请求 /或 index 时，显示首页
    
    if (req.url === '/' || req.url === '/index' || req.method === 'get') {
        //读取index 并返回
        render(path.join(__dirname, 'static', 'index.html'), res)
        //当用户请求 login 时显示登陆
    } else if (req.url === '/login' || req.method === 'get') {
        render(path.join(__dirname, 'static', 'login.html'), res)

    } else if (req.url.startsWith('/logon') || req.method === 'get') {
        render(path.join(__dirname, 'static', 'logon.html'), res)

        fs.readFile(path.join(__dirname, './login.json'), 'utf8', function (err, data) {
            if (err && err.code !== 'ENOENT'){
                throw err
            }
            var list = JSON.parse(data || '[]')
            //获取用户提交的数据
            list.push(querystring.parse(url.parse(req.url).query))
            //将用户提交的数据写入 login.json
            fs.writeFile(path.join(__dirname, './login.json'),JSON.stringify(list), function (err) {
                if (err) console.log(err)
                console.log('ok')

                //设置响应报文头，通过响应报文头告诉浏览器，执行一次页面操作
                //跳转到 登陆页  浏览器重定向
                res.statusCode = 302
                res.statusMessage = 'Found'
                res.setHeader('Location', '/log')
                res.end()
            })
        })

    } else if (req.url.startsWith('/content')) {
        render(path.join(__dirname, 'static', 'content.html'), res)

        //登陆验证
        fs.readFile(path.join(__dirname, './login.json'), 'utf8', function (err, data) {
            if(err) throw (err)

            //遍历用户名密码 如果符合 才能跳转页面 如果不能重定向到当前页面
            console.log(data)
        })

    } else {
        res.writeHead(404, 'Not Found', {
            'Content-Type': 'text/html;charset=utf-8'
        })
        res.end('404,Pate Not Found')
    }
}).listen(3000, function () {
    console.log('http://127.0.0.1:3000')
})


//封装一个render 函数
function render(filename, res) {
    fs.readFile(filename, function (err, data) {
        if (err) {
            res.writeHead(404, 'Not Found', {
                'Content-Type': 'text/html;charset=utf-8'
            })
            res.end('404,not found.')
            return
        }
        res.setHeader('Content-Type', mime.getType(filename))
        res.end(data)
    })
}